// index.js
// 获取应用实例
const app = getApp()
const util = require('../../utils/util.js')

Page({
  data: {
    //滑块时间
    time: 5,
    //程序宽度
    rate: '',
    //计时页面隐藏
    clockShow: false,
    //时间显示
    timeStr: '05:00',
    mTime: 300000,
    timer: null,
    //默认图标位置
    cateActive: '0',
    //计时页按钮显示和隐藏
    okShow: false,
    pauseShow: true,
    continueCancleShow: false,
    cateArr: [{
        icon: 'gongzuo',
        text: '工作'
      },
      {
        icon: 'xuexi',
        text: '学习'
      },
      {
        icon: 'sikao',
        text: '思考'
      },
      {
        icon: 'yuedu',
        text: '阅读'
      },
      {
        icon: 'yundong',
        text: '运动'
      },
      {
        icon: 'xiezuo',
        text: '写作'
      },
    ],

  },
  // 事件处理函数
  bindViewTap() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onLoad() {
    //程序宽度
    const res = wx.getSystemInfoAsync;
    const rate = 750 / res.windowWidth;
    this.setData({
      rate: rate,
    })
    console.log(res)
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }
  },
  getUserProfile(e) {
    // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认，开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
    wx.getUserProfile({
      desc: '展示用户信息', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
      success: (res) => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },
  getUserInfo(e) {
    // 不推荐使用getUserInfo获取用户信息，预计自2021年4月13日起，getUserInfo将不再弹出弹窗，并直接返回匿名的用户个人信息
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  },
  //滑块随着移动发生变化
  sliderChange(e) {
    this.setData({
      time: e.detail.value
    })
  },
  //点击切换图标后变换颜色
  clickCate(e) {
    this.setData({
      cateActive: e.currentTarget.dataset.index
    })
  },
  //计时页面
  start(e) {
    this.setData({
      //计时页面显示
      clockShow: true,
      mTime: this.data.time * 60 * 1000,
      timeStr: parseInt(this.data.time) >= 10 ? this.data.time + ':00' : '0' + this.data.time + ':00'
    })
    this.drawActive();
  },
  drawActive() {
    const _this = this;
    const timer = setInterval(function () {
      //1.5-3.5
      const angle = 1.5 + 2 * (_this.data.time * 60 * 1000 - _this.data.mTime) /
        (_this.data.time * 60 * 1000);
      const currentTime = _this.data.mTime - 100;
      _this.setData({
        mTime: currentTime
      });
      if (angle < 3.5) {
        if (currentTime % 1000 == 0) {
          var timeStr1 = currentTime / 1000; // s
          var timeStr2 = parseInt(timeStr1 / 60); // m
          var timeStr3 = (timeStr1 - timeStr2 * 60) >= 10 ? (timeStr1 - timeStr2 * 60) :
            '0' + (timeStr1 - timeStr2 * 60);
          var timeStr2 = timeStr2 >= 10 ? timeStr2 : '0' + timeStr2;
          _this.setData({
            timeStr: timeStr2 + ':' + timeStr3
          })
        }
      } else {
        const logs = wx.getStorageSync('logs') || [];
        logs.unshift({
          date: util.formatTime(new Date),
          cate: _this.data.cateActive,
          time: _this.data.time
        });
        wx.setStorageSync('logs', logs);
        _this.setData({
          timeStr: '00:00',
          okShow: true,
          pauseShow: false,
          continueCancleShow: false,
        })
        clearInterval(timer);
      }
    }, 100)
    _this.setData({
      timer: timer
    })
  },
  pause() {
    clearInterval(this.data.timer);
    this.setData({
      pauseShow: false,
      continueCancleShow: true,
      okShow: false
    })
  },
  continue () {
    this.drawActive();
    this.setData({
      pauseShow: true,
      continueCancleShow: false,
      okShow: false
    })
  },
  cancle() {
    clearInterval(this.data.timer);
    this.setData({
      pauseShow: true,
      continueCancleShow: false,
      okShow: false,
      clockShow: false
    })
  },
  ok() {
    clearInterval(this.data.timer);
    this.setData({
      pauseShow: true,
      continueCancleShow: false,
      okShow: false,
      clockShow: false
    })

  }
})